www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Library/XerCMS_bak.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com 
 */

!defined('XERCMS') && exit('Access Denied');

class BAK
{
     static $number = 100;
	 
     static function tables() {
	     DB::$connect || DB::connect();
          $name = DB::$db[0]['name'];
	 	$t = DB::fetch_all('SHOW TABLES');
          foreach($t as $v) {
		     $count = DB::result_first('SELECT COUNT(*) FROM '.$v['Tables_in_'.$name]);
		 	$ret[] = array('name'=>$v['Tables_in_'.$name],'count'=>$count);
		}
		return $ret;
	}
	 
	static function log($dir) {
		if(file_exists(INC.'Data/backup/'.$dir.'/XerCMS.php')) {
			return include(INC.'Data/backup/'.$dir.'/XerCMS.php');
          }
	 	return array();			
	} 	 
	 
	static function write($name,$data,$dir) {	 
	     DIR::mkdirs('XerCMS/Data/backup/'.$dir);//f('arrtostr');	
		//echo 'XerCMS/Data/backup/'.$dir;exit;             
	     $log = array();
		if(file_exists(INC.'Data/backup/'.$dir.'/XerCMS.php')) {
			$log = include(INC.'Data/backup/'.$dir.'/XerCMS.php');
		}
		$log[$name] = isset($log[$name]) ? ((int)$log[$name] + 1) : 1;
		if($log[$name] == 1) {		  
			dfile('XerCMS/Data/backup/'.$dir.'/'.$name.'.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return \'DROP TABLE IF EXISTS `'.$name.'`\';?>');
			$create = DB::result('show create table `'.$name.'`');
               dfile('XerCMS/Data/backup/'.$dir.'/'.$name.'_0.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return \''.strtr($create['Create Table'],array('\''=>'\\\'')).'\';?>');
		}
		dfile('XerCMS/Data/backup/'.$dir.'/XerCMS.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return '.AtoS($log).';?>');
           dfile('XerCMS/Data/backup/'.$dir.'/'.$name.'_'.$log[$name].'.php','<?php !defined(\'XERCMS\') && exit(\'Access Denied\');return \''.$data.'\';?>');
	}
	 
	static function table($name,$start,$dir) {
	     $count = 0;
	     $data = DB::fetch_all('SELECT * FROM '.$name.' LIMIT '.$start.','.self::$number);	
		if(isset($data[0])) {
		     $sqlstr = 'INSERT INTO '.$name.' ';
		     foreach($data[0] as $k=>$v) {
				$field[] = '`'.$k.'`';
		     }
			$sqlstr .= '('.implode(',',$field).') VALUES ';$field = array();
		     foreach($data as $row) {
			     foreach($row as $k=>$v) {
					$row[$k] = '\\\''.addslashes(addslashes($v)).'\\\'';//strtr($v,array('\\'=>'\\\\','\''=>'\\\'')).'\\\'';
				}
		          $field[] = '('.implode(',',$row).')';
				$count++;
		     }
               $sqlstr .= implode(",\r\n",$field).';';
			self::write($name,$sqlstr,$dir);
			return $count;
		}
		return '0';
	}
	 
	static function restore($name,$id,$dir) {
	     if($id == 0) {
			$sql = include(INC.'Data/backup/'.$dir.'/'.$name.'.php'); 
		   	DB::query($sql);//file_put_contents(XERCMS.'html/'.$name.'.txt',$sql.DB::$error."\r\n",FILE_APPEND);
		}
          
	     if(file_exists(INC.'Data/backup/'.$dir.'/'.$name.'_'.$id.'.php')) {
			$sql = include(INC.'Data/backup/'.$dir.'/'.$name.'_'.$id.'.php');
			// file_put_contents(XERCMS.'html/'.$name.'_'.$id.'.txt',$sql."\r\n",FILE_APPEND);
			return DB::query($sql);
		}
	}	 
}
?>